msg_tool\scripts\entis_gls\csx/
base.rs1use crate::scripts::base::*;
2use crate::types::*;
3use anyhow::Result;
4use std::collections::HashMap;
5use std::io::Write;
6
7pub trait ECSImage: std::fmt::Debug {
8 fn disasm<'a>(&self, writer: Box<dyn Write + 'a>) -> Result<()>;
9 fn export(&self) -> Result<Vec<Message>>;
10 fn export_multi(&self) -> Result<HashMap<String, Vec<Message>>>;
11 fn export_all(&self) -> Result<Vec<String>>;
12 fn import<'a>(
13 &self,
14 messages: Vec<Message>,
15 file: Box<dyn WriteSeek + 'a>,
16 replacement: Option<&'a ReplacementTable>,
17 ) -> Result<()>;
18 fn import_multi<'a>(
19 &self,
20 messages: HashMap<String, Vec<Message>>,
21 file: Box<dyn WriteSeek + 'a>,
22 replacement: Option<&'a ReplacementTable>,
23 ) -> Result<()>;
24 fn import_all<'a>(&self, messages: Vec<String>, file: Box<dyn WriteSeek + 'a>) -> Result<()>;
25}